/// 图片资源配置类
/// 管理应用中所有的图片资源路径，便于统一管理和维护
class ImageConfig {
  // ========== 基础路径 ========== //
  static const String _basePath = 'assets/images';
  static const String _iconPath = '$_basePath/icons';
  static const String _logoPath = '$_basePath/logos';
  static const String _backgroundPath = '$_basePath/backgrounds';
  static const String _illustrationPath = '$_basePath/illustrations';
  static const String _avatarPath = '$_basePath/avatars';
  
  // ========== 应用图标 ========== //
  static const String appIcon = '$_logoPath/app_icon.png';
  static const String appLogo = '$_logoPath/app_logo.png';
  static const String appLogoWhite = '$_logoPath/app_logo_white.png';
  static const String splashLogo = '$_logoPath/splash_logo.png';
  
  // ========== 底部导航图标 ========== //
  static const String tabWorkbench = '$_iconPath/tab_workbench.png';
  static const String tabWorkbenchSelected = '$_iconPath/tab_workbench_selected.png';
  static const String tabPurchase = '$_iconPath/tab_purchase.png';
  static const String tabPurchaseSelected = '$_iconPath/tab_purchase_selected.png';
  static const String tabPatient = '$_iconPath/tab_patient.png';
  static const String tabPatientSelected = '$_iconPath/tab_patient_selected.png';
  static const String tabCollege = '$_iconPath/tab_college.png';
  static const String tabCollegeSelected = '$_iconPath/tab_college_selected.png';
  static const String tabMy = '$_iconPath/tab_my.png';
  static const String tabMySelected = '$_iconPath/tab_my_selected.png';
  
  // ========== 通用图标 ========== //
  static const String iconBack = '$_iconPath/icon_back.png';
  static const String iconClose = '$_iconPath/icon_close.png';
  static const String iconSearch = '$_iconPath/icon_search.png';
  static const String iconAdd = '$_iconPath/icon_add.png';
  static const String iconEdit = '$_iconPath/icon_edit.png';
  static const String iconDelete = '$_iconPath/icon_delete.png';
  static const String iconMore = '$_iconPath/icon_more.png';
  static const String iconShare = '$_iconPath/icon_share.png';
  static const String iconDownload = '$_iconPath/icon_download.png';
  static const String iconUpload = '$_iconPath/icon_upload.png';
  static const String iconRefresh = '$_iconPath/icon_refresh.png';
  static const String iconFilter = '$_iconPath/icon_filter.png';
  static const String iconSort = '$_iconPath/icon_sort.png';
  static const String iconSetting = '$_iconPath/icon_setting.png';
  static const String iconHelp = '$_iconPath/icon_help.png';
  static const String iconInfo = '$_iconPath/icon_info.png';
  static const String iconWarning = '$_iconPath/icon_warning.png';
  static const String iconError = '$_iconPath/icon_error.png';
  static const String iconSuccess = '$_iconPath/icon_success.png';
  static const String iconArrowRight = '$_iconPath/icon_arrow_right.png';
  static const String iconArrowLeft = '$_iconPath/icon_arrow_left.png';
  static const String iconArrowUp = '$_iconPath/icon_arrow_up.png';
  static const String iconArrowDown = '$_iconPath/icon_arrow_down.png';
  static const String iconEye = '$_iconPath/icon_eye.png';
  static const String iconEyeOff = '$_iconPath/icon_eye_off.png';
  static const String iconHeart = '$_iconPath/icon_heart.png';
  static const String iconHeartFilled = '$_iconPath/icon_heart_filled.png';
  static const String iconStar = '$_iconPath/icon_star.png';
  static const String iconStarFilled = '$_iconPath/icon_star_filled.png';
  static const String iconLocation = '$_iconPath/icon_location.png';
  static const String iconPhone = '$_iconPath/icon_phone.png';
  static const String iconEmail = '$_iconPath/icon_email.png';
  static const String iconCalendar = '$_iconPath/icon_calendar.png';
  static const String iconClock = '$_iconPath/icon_clock.png';
  static const String iconCamera = '$_iconPath/icon_camera.png';
  static const String iconGallery = '$_iconPath/icon_gallery.png';
  static const String iconFile = '$_iconPath/icon_file.png';
  static const String iconFolder = '$_iconPath/icon_folder.png';
  
  // ========== 登录注册相关 ========== //
  static const String loginBackground = '$_backgroundPath/login_background.png';
  static const String loginLogo = '$_logoPath/login_logo.png';
  static const String registerBackground = '$_backgroundPath/register_background.png';
  static const String iconUser = '$_iconPath/icon_user.png';
  static const String iconPassword = '$_iconPath/icon_password.png';
  static const String iconCode = '$_iconPath/icon_code.png';
  
  // ========== 工作台相关 ========== //
  static const String workbenchBackground = '$_backgroundPath/workbench_background.png';
  static const String iconPatient = '$_iconPath/icon_patient.png';
  static const String iconPrescription = '$_iconPath/icon_prescription.png';
  static const String iconDiagnosis = '$_iconPath/icon_diagnosis.png';
  static const String iconMedicine = '$_iconPath/icon_medicine.png';
  static const String iconStatistics = '$_iconPath/icon_statistics.png';
  static const String iconRecord = '$_iconPath/icon_record.png';
  static const String iconLibrary = '$_iconPath/icon_library.png';
  static const String iconQuickDiagnosis = '$_iconPath/icon_quick_diagnosis.png';
  static const String iconMale = '$_iconPath/icon_male.png';
  static const String iconFemale = '$_iconPath/icon_female.png';
  static const String iconAge = '$_iconPath/icon_age.png';
  static const String iconHistory = '$_iconPath/icon_history.png';
  
  // ========== 采购相关 ========== //
  static const String purchaseBackground = '$_backgroundPath/purchase_background.png';
  static const String iconCart = '$_iconPath/icon_cart.png';
  static const String iconOrder = '$_iconPath/icon_order.png';
  static const String iconSupplier = '$_iconPath/icon_supplier.png';
  static const String iconCategory = '$_iconPath/icon_category.png';
  static const String iconPrice = '$_iconPath/icon_price.png';
  static const String iconStock = '$_iconPath/icon_stock.png';
  static const String iconDelivery = '$_iconPath/icon_delivery.png';
  static const String iconAddress = '$_iconPath/icon_address.png';
  static const String iconPayment = '$_iconPath/icon_payment.png';
  static const String iconInvoice = '$_iconPath/icon_invoice.png';
  static const String iconPackage = '$_iconPath/icon_package.png';
  static const String iconShipping = '$_iconPath/icon_shipping.png';
  
  // ========== 患者沟通相关 ========== //
  static const String chatBackground = '$_backgroundPath/chat_background.png';
  static const String iconChat = '$_iconPath/icon_chat.png';
  static const String iconMessage = '$_iconPath/icon_message.png';
  static const String iconVoice = '$_iconPath/icon_voice.png';
  static const String iconImage = '$_iconPath/icon_image.png';
  static const String iconVideo = '$_iconPath/icon_video.png';
  static const String iconEmoji = '$_iconPath/icon_emoji.png';
  static const String iconSend = '$_iconPath/icon_send.png';
  static const String iconConsultation = '$_iconPath/icon_consultation.png';
  static const String iconFeedback = '$_iconPath/icon_feedback.png';
  static const String iconOnline = '$_iconPath/icon_online.png';
  static const String iconOffline = '$_iconPath/icon_offline.png';
  
  // ========== 学院相关 ========== //
  static const String collegeBackground = '$_backgroundPath/college_background.png';
  static const String iconCourse = '$_iconPath/icon_course.png';
  static const String iconStudy = '$_iconPath/icon_study.png';
  static const String iconExam = '$_iconPath/icon_exam.png';
  static const String iconCertificate = '$_iconPath/icon_certificate.png';
  static const String iconKnowledge = '$_iconPath/icon_knowledge.png';
  static const String iconNews = '$_iconPath/icon_news.png';
  static const String iconExchange = '$_iconPath/icon_exchange.png';
  static const String iconProgress = '$_iconPath/icon_progress.png';
  static const String iconBook = '$_iconPath/icon_book.png';
  static const String iconAudio = '$_iconPath/icon_audio.png';
  
  // ========== 我的相关 ========== //
  static const String myBackground = '$_backgroundPath/my_background.png';
  static const String iconProfile = '$_iconPath/icon_profile.png';
  static const String iconAccount = '$_iconPath/icon_account.png';
  static const String iconSystem = '$_iconPath/icon_system.png';
  static const String iconAbout = '$_iconPath/icon_about.png';
  static const String iconContact = '$_iconPath/icon_contact.png';
  static const String iconVersion = '$_iconPath/icon_version.png';
  static const String iconUpdate = '$_iconPath/icon_update.png';
  static const String iconCache = '$_iconPath/icon_cache.png';
  static const String iconTheme = '$_iconPath/icon_theme.png';
  static const String iconLanguage = '$_iconPath/icon_language.png';
  static const String iconNotification = '$_iconPath/icon_notification.png';
  static const String iconPrivacy = '$_iconPath/icon_privacy.png';
  static const String iconSecurity = '$_iconPath/icon_security.png';
  static const String iconCollection = '$_iconPath/icon_collection.png';
  static const String iconAuthentication = '$_iconPath/icon_authentication.png';
  static const String iconClinic = '$_iconPath/icon_clinic.png';
  static const String iconDoctor = '$_iconPath/icon_doctor.png';
  static const String iconLicense = '$_iconPath/icon_license.png';
  
  // ========== 状态图标 ========== //
  static const String iconPending = '$_iconPath/icon_pending.png';
  static const String iconApproved = '$_iconPath/icon_approved.png';
  static const String iconRejected = '$_iconPath/icon_rejected.png';
  static const String iconProcessing = '$_iconPath/icon_processing.png';
  static const String iconCompleted = '$_iconPath/icon_completed.png';
  static const String iconCancelled = '$_iconPath/icon_cancelled.png';
  static const String iconEnabled = '$_iconPath/icon_enabled.png';
  static const String iconDisabled = '$_iconPath/icon_disabled.png';
  
  // ========== 插画图片 ========== //
  static const String illustrationEmpty = '$_illustrationPath/illustration_empty.png';
  static const String illustrationError = '$_illustrationPath/illustration_error.png';
  static const String illustrationNetwork = '$_illustrationPath/illustration_network.png';
  static const String illustrationSuccess = '$_illustrationPath/illustration_success.png';
  static const String illustrationWelcome = '$_illustrationPath/illustration_welcome.png';
  static const String illustrationLoading = '$_illustrationPath/illustration_loading.png';
  static const String illustrationMaintenance = '$_illustrationPath/illustration_maintenance.png';
  static const String illustrationNoData = '$_illustrationPath/illustration_no_data.png';
  static const String illustrationNoNetwork = '$_illustrationPath/illustration_no_network.png';
  static const String illustrationNoPermission = '$_illustrationPath/illustration_no_permission.png';
  
  // ========== 默认头像 ========== //
  static const String avatarDefault = '$_avatarPath/avatar_default.png';
  static const String avatarMale = '$_avatarPath/avatar_male.png';
  static const String avatarFemale = '$_avatarPath/avatar_female.png';
  static const String avatarDoctor = '$_avatarPath/avatar_doctor.png';
  static const String avatarPatient = '$_avatarPath/avatar_patient.png';
  
  // ========== 背景图片 ========== //
  static const String backgroundMain = '$_backgroundPath/background_main.png';
  static const String backgroundGradient = '$_backgroundPath/background_gradient.png';
  static const String backgroundPattern = '$_backgroundPath/background_pattern.png';
  static const String backgroundCard = '$_backgroundPath/background_card.png';
  static const String backgroundHeader = '$_backgroundPath/background_header.png';
  
  // ========== 占位图片 ========== //
  static const String placeholderImage = '$_illustrationPath/placeholder_image.png';
  static const String placeholderAvatar = '$_illustrationPath/placeholder_avatar.png';
  static const String placeholderProduct = '$_illustrationPath/placeholder_product.png';
  static const String placeholderBanner = '$_illustrationPath/placeholder_banner.png';
  
  // ========== 工具方法 ========== //
  
  /// 获取底部导航图标
  /// [index] 导航索引
  /// [isSelected] 是否选中
  static String getTabIcon(int index, bool isSelected) {
    switch (index) {
      case 0:
        return isSelected ? tabWorkbenchSelected : tabWorkbench;
      case 1:
        return isSelected ? tabPurchaseSelected : tabPurchase;
      case 2:
        return isSelected ? tabPatientSelected : tabPatient;
      case 3:
        return isSelected ? tabCollegeSelected : tabCollege;
      case 4:
        return isSelected ? tabMySelected : tabMy;
      default:
        return tabWorkbench;
    }
  }
  
  /// 获取性别图标
  /// [gender] 性别 (0: 未知, 1: 男, 2: 女)
  static String getGenderIcon(int gender) {
    switch (gender) {
      case 1:
        return iconMale;
      case 2:
        return iconFemale;
      default:
        return iconUser;
    }
  }
  
  /// 获取状态图标
  /// [status] 状态码
  static String getStatusIcon(int status) {
    switch (status) {
      case 0:
        return iconPending;
      case 1:
        return iconApproved;
      case 2:
        return iconRejected;
      case 3:
        return iconProcessing;
      case 4:
        return iconCompleted;
      case 5:
        return iconCancelled;
      default:
        return iconPending;
    }
  }
  
  /// 获取默认头像
  /// [gender] 性别 (0: 未知, 1: 男, 2: 女)
  static String getDefaultAvatar(int gender) {
    switch (gender) {
      case 1:
        return avatarMale;
      case 2:
        return avatarFemale;
      default:
        return avatarDefault;
    }
  }
}